#ifndef REGLAS_H
#define REGLAS_H

#include "aed2.h"
#include "ItUniLista.h"

class Reglas
{
public:
    class IteradorNPE;

    Reglas();
    ~Reglas();
    void agregarPais();
    void restringirVer(Pais, Pais);
    bool puedeVer(Pais, Pais) const;
    aed2::Nat cantPaises() const;
    bool tieneAlgunHueco() const;

    class IteradorNPE{
    public:
        bool hayMas() const;
        const Pais& actual() const;
        void avanzar();
    private:
        ItUniLista<Pais> it;
        IteradorNPE(const Reglas*, Pais);
        friend class Reglas;
    };

    IteradorNPE noPuedeEmitir(Pais) const;

    private:
        Vector< Lista <Pais> > estr;
};

#endif // REGLAS_H
